home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 051-075 / scopedisk52 / tutor / c5 < prev    next >
Text File  |  1995-03-18  |  23KB  |  665 lines

  1. Commands covered are:
  2. RUN
  3. EXECUTE
  4. FAILAT
  5. IF
  6. ELSE
  7. ENDIF
  8. QUIT
  9. SKIP
  10. LAB
  11. QUIT
  12.  
  13. ________________________________________________________________________________
  14.  
  15. RUN
  16.     causes a command to be performed from the CLI
  17.  
  18.     This command has virtually the same result as just typing a command
  19. in at the CLI prompt. Consider the two statements below:
  20.  
  21. COMMAND [PARAMETERS]
  22. RUN COMMAND [PARAMETERS]
  23.  
  24. Both of these statements will cause the command "COMMAND" to be initiated, the
  25. difference is that by using the RUN command, COMMAND will open it's own CLI
  26. and be performed from that one and it will release control of your CLI for
  27. further input by you...and isn't that what multi-tasking is all about?
  28.  
  29.     To illustrate this point, we'll use the ED command again, since it's
  30. one that will take over if allowed. We won't be writing anything into the
  31. editor. Just watch your command window's prompt.
  32.  
  33. >> ED ram:foo
  34.  
  35. /* After ED has finished loading and has displayed it's screen, you'll notice
  36. that your command window's prompt did not return. You can still type commands
  37. into this window, but they'll have to wait until the window is released by ED
  38. before they can be handled. So what?
  39.     Let's say that you wanted to create a file and have it written to ram:,
  40. but since ED only writes to the current directory and since we didn't "CD ram:"
  41. before we started ED going, your results will not end up where you wanted them.
  42. Typing in "CD ram:" into the window at this point, will simply put your demand
  43. on hold until the window becomes free again. */
  44.  
  45.     Activate ED and press <ESC>:
  46. *Q
  47.  
  48.     OK, now type in:
  49.  
  50. >> RUN ED ram:foo
  51.  
  52. /* This time your prompt returned to the ready position and you can utilize
  53. this window for any commands you might want to run while still doing your
  54. editing chores. */
  55.  
  56.         Activate ED and press <ESC>:
  57. *Q
  58.  
  59.     There are times that you might intentionally want to tie-up the window
  60. and there are commands like DIR that don't tie the window up very long and
  61. automatically return control with no action on your part, so you don't have
  62. to RUN everything, but this decision-making will become more natural with
  63. experience.
  64.  
  65.     One last thing, RUN is not meant to be used with batchfiles. If you
  66. try to RUN a batchfile, you'll get an error that will tell that the file
  67. is not an object module and give you the number 121. This simply put means
  68. that the file you tried to RUN is not in the proper format (a binary 
  69. executable program). EXECUTE is the command you want for batchfiles.
  70.  
  71. ________________________________________________________________________________
  72.  
  73. EXECUTE
  74.  
  75.     is used to tell DOS that it is to read a text file of CLI commands
  76.     and follow the commands contained therein.
  77.  
  78.     Why not just type in the commands you need and not even bother with
  79. batchfiles at all?
  80.  
  81.     You could. But to make things easier on yourself, you'll make and
  82. use batchfiles to perform operations that require a lot of commands that
  83. get repeated very often.
  84.  
  85.     Batchfiles are regular, garden variety text files that can be
  86. written, edited, and stored the same way you might write a letter to your
  87. mother. The exception being that each line contains a command exactly the
  88. way it would appear if you had typed it into the CLI at the prompt.
  89.  
  90.     The "startup-sequence" that configures your Amiga when you put
  91. a WB in at boot-up time is a batchfile.
  92.  
  93. >> TYPE s:startup-sequence
  94. /* the startup-sequence will appear */
  95.  
  96.     It doesn't matter if it scrolls off the top of the window, but what's
  97. important is that you have a look at it and see how each line is a unique
  98. command. Hopefully, even though all the commands may not be ones we've
  99. discussed yet, it's apparent that you WOULD get the same results by typing
  100. each line into the CLI seperately.
  101.  
  102.     This should also illustrate that the Amiga doesn't do anything
  103. magical when you insert the WB at the hand-picture prompt. It will make the
  104. assignments that we looked at in Section 1, looks in the S: directory, and
  105. if it finds a file called "startup-sequence" it EXECUTEs it. /* If there 
  106. isn't a "startup-sequence" in S:, it doesn't have anything to do and just stops
  107. with a CLI open */
  108.  
  109.     The next logical step following the facts that A) the startup-
  110. sequence is a batchfile; and B) batchfiles can be edited /* read customized */;
  111. it follows that you can cause all manner of things to happen when you're 
  112. machine starts up.
  113.  
  114.     One other important fact to note is that you can pass an parameter
  115. to be used within the batchfile from the command line. This is done by using
  116. a special character within the file to signal DOS that a substitution is to
  117. be performed. This character is the period ".".  A stipulation to using these
  118. lines is that if there are ANY within the file, at least THE FIRST LINE MUST
  119. CONTAIN ONE. The most common one that we might use at this level of skill is
  120. the ".KEY" or ".K" option.
  121.  
  122.     Let's say we want to create a batchfile that will start some program
  123. running. Let's also assume that it requires that the logical name FONTS: is
  124. assigned to it's font directory and that, to make the program run faster, 
  125. we want to put one of it's files in ram:. /* Don't type in the following 
  126. lines, they're for illustration only */ We could type in:
  127.  
  128. BS> ASSIGN fonts: DISKNAME:fonts
  129. BS> COPY DISKNAME:filename ram:
  130. BS> [RUN] PROGRAM
  131.  
  132.     Now we do whatever we wanted to do and close the program. When we
  133. take the disk out the disk's icon will stay on the screen since FONTS: is 
  134. still assigned to that disk, and the file we copied to ram: will still be
  135. there. We can always:
  136.  
  137. BS> ASSIGN fonts: [WB:fonts]
  138. BS> DELETE ram:filename
  139.  
  140.     But, it's more trouble than it's worth if it's a program that's
  141. used fairly often and we might just forget.
  142.  
  143.     So, we're back to our batchfile. We want one that will both start
  144. the program and clean-up after we're done. /* There are a few ways to do
  145. this but to illustrate the use of the ".K" option, we'll go with this. To
  146. begin, you'd start ED and type in the following lines:
  147.  
  148. /********** ILLUSTRATION ONLY **************/
  149.  
  150.  
  151. .K switch       /* 1st line */
  152. IF "<switch>" EQ "on"
  153.  ASSIGN fonts: diskname:fonts
  154.  COPY diskname:filename ram:
  155.  [RUN] diskname:program
  156.  QUIT
  157. ENDIF
  158. IF "<switch>" EQ "off"
  159.  ASSIGN fonts: /* WB:fonts */
  160.  DELETE ram:filename
  161. ENDIF
  162.  
  163. /*******************************************/
  164.  
  165.     Now all you'd have to do is:
  166.  
  167. BS> EXECUTE batchfile [on][off]
  168.  
  169. and the batchfile would check to see if the word you type at the end of the
  170. command line matches any of the occurances of the .KEYword "switch" and if
  171. it finds a match, it will perform that portion of the file. If it doesn't,
  172. it will just get to the end without doing anything.
  173.  
  174.     We'll come back to this example as we get more involved.
  175.  
  176.     Since we must walk before we run. Let's have a look at some of
  177. the commands that are solely used within batchfiles and that appear in our
  178. example. Some will be lumped together because that's the way they function
  179. and they'll make more sense that way.
  180.  
  181.  
  182. ________________________________________________________________________________
  183.  
  184. FAILAT
  185.  
  186.     used to change the level at which the execution of a batchfile will
  187. abort when an error is detected or a command fails.
  188.  
  189.     An AmigaDOS command will usually return a numberic value if it fails for
  190. some reason or another. This value is usually 5, 10, or 20. The FAILAT command
  191. will prevent a batchfile from aborting should a command fail if the failat level
  192. is set higher than the number returned by the command. By default this level is
  193. set to 10 and upon exiting any given batchfile, this level is reset to the
  194. default. 
  195.  
  196. >> FAILAT
  197. Fail limit: 10
  198. >> FAILAT 20
  199. Fail limit: 20
  200.  
  201.     In a batchfile, the FAILAT command must preceed any situation your
  202. trying to prevent from aborting the execution. Otherwise the batchfile will exit
  203. before it's reached.
  204.  
  205. ________________________________________________________________________________
  206.  
  207. IF ELSE ENDIF
  208.  
  209.     control the determination of conditional arguments and the method
  210.     used to contend with the results.
  211.  
  212.     For every IF there MUST BE a matching ENDIF!
  213.  
  214.     This tells DOS where the command[s] we want run, as a result of the
  215. conditional, end[s].
  216.  
  217.         A few generic examples of how these can be used are:
  218.  
  219. IF [condition]          IF [condition]          IF [condition]
  220.   [command]               [command]               IF [condition]
  221. ENDIF                   ELSE                        [command]
  222.                           [command]               ENDIF
  223.                         ENDIF                     [command]
  224.                                                 ENDIF
  225.  
  226. >> IF ?
  227. NOT/S,WARN/S,ERROR/S,FAIL/S,,EQ/K,EXISTS/K:
  228.  
  229.     Whew!
  230.     Let's start by eliminating a few of these that might be beyond the
  231. scope of this tutorial.
  232.     Warn, Error, and Fail check for numberic values that are returned as
  233. a result of the checking the conditional. Since most commands return some value
  234. if they fail, you can check for this by using one of these parameters. The one
  235. thing to keep in mind is that with no changes, a command that fails will cause a
  236. batchfile to terminate. Here's where the FAILAT command would come into play.
  237.  
  238.     For an example, let's say that we want to create a directory from a
  239. batchfile. MAKEDIR will fail if the directory already exists. Here's one way we
  240. can check for this:
  241.  
  242. ----------- Example batchfile only --------------
  243.  
  244. failat 21 /* this can be any number greater than the fail value, 20 */
  245. makedir disk:directory
  246. if fail
  247.    [condition]
  248. endif
  249. [failat 20] /* this can be reset if you want the batchfile to terminate on the
  250. next error condition */
  251.  
  252. -------------------------------------------------
  253.  
  254.     This leaves us with IF by itself and NOT, EQ, EXISTS as additional
  255. conditionals.
  256.  
  257.     Keep in mind, batchfiles aren't exactly like writing programs in a
  258. real programming language like C or Basic. They run from top to bottom.
  259.  
  260.     EQ checks for "equality" between the two items on either side
  261. of it. Note that both of these are surrounded by quotes. This tells it that
  262. these are literal. /* char wouldn't match "x" */
  263.  
  264.         .K char
  265.         IF "<char>" EQ "X"
  266.  
  267.     EXISTS looks to see if the conditional is there.
  268.  
  269.         IF EXISTS [condition]
  270.  
  271.     NOT checks for a negative situation.
  272.  
  273.         IF NOT [condition]
  274.  
  275.     Sometimes you'll want to use them together.
  276.  
  277.         IF NOT EXISTS [condition]
  278.  
  279. _______________________________________________________________________________
  280.  
  281. SKIP LAB
  282.  
  283.     provide a method for bypassing sections of your batchfile.
  284.  
  285.     For every SKIP command there MUST BE a LAB command!
  286.  
  287.         /* upper portion of batchfile */
  288.         SKIP name
  289.         /* section to be SKIPped over */
  290.         LAB name
  291.         /* section to be SKIPped to */
  292.  
  293.     When the DOS reaches the command SKIP, it reads the name that follows
  294. and bypasses the rest of the lines until it reaches a LAB command that has
  295. the same name after it. Then execution continues as normal.
  296.  
  297.     These are usually, but not necessarily, used in conjunction with
  298. the IF command.
  299.  
  300.     For example:
  301.  
  302.         IF [condition]
  303.           SKIP [name]
  304.         ELSE
  305.           [command]
  306.         ENDIF
  307.         /* section that's skipped if the IF condition is true */
  308.         LAB [name]
  309.         /* file continues */
  310.  
  311.     In this example, if the condition at the IF in the first line isn't met,
  312. the execution will skip down to the line LAB and continue from there.
  313.  
  314.     One more thing, LAB won't affect the normal flow of the file, if
  315. AmigaDOS runs across one that it hasn't SKIPped to:
  316.  
  317.     If the condition in the first line IS NOT met and the file ignores the
  318. SKIP command, execution will continue through the commands specified after the
  319. ELSE and right on through the rest of the file paying no attention to the LAB
  320. line. If this is something that you don't desire, use the QUIT command to
  321. terminate, set-up another SKIP, or re-position the LAB keeping in mind that you
  322. can't go backwards.
  323.  
  324. ________________________________________________________________________________
  325.  
  326. QUIT
  327.  
  328.     causes a batchfile to exit upon reaching the command
  329.  
  330. ________________________________________________________________________________
  331.  
  332.  
  333.     Remember the sample batchfile, we used in the EXECUTE discussion?
  334. Well, it wasn't very polished, so to demonstrate a few of the previous
  335. commands, let's add a few lines to it. Keep in mind that this is just an
  336. example and not meant to perform a real function.
  337.  
  338. /********** ILLUSTRATION ONLY **************/
  339.  
  340.  
  341. .K switch       /* 1st line */
  342. IF "<switch>" EQ "on"
  343.  ASSIGN fonts: DISKNAME:fonts
  344.  COPY DISKNAME:filename ram:
  345.  [RUN] DISKNAME:PROGRAM
  346.  QUIT
  347. ENDIF
  348. IF "<switch>" EQ "off"
  349.  ASSIGN fonts: /* WB:fonts */
  350.  DELETE ram:filename
  351. ENDIF
  352.  
  353. /*******************************************/
  354.  
  355.     In a real situation, I'm not sure that it would be worth expanding
  356. this too much more, but...let's throw in a little error checking.
  357.     If the user forgets to type in parameter for "switch", it won't
  358. work. If he types in "On", it won't match. So as a good batchfile writer,
  359. out-think the user, even if it's yourself.
  360.     Mainly, we need a way to inform the user of the usage the file will
  361. expect.
  362.  
  363.     Here's one way that this can be done:
  364.  
  365. .K switch       /* 1st line */
  366. IF "<switch>" EQ ""    /* checks for no parameter */
  367.     SKIP usage
  368. ENDIF
  369. IF "<switch>" eq "on"
  370.     ASSIGN fonts: diskname:fonts
  371.     COPY diskname:filename ram:
  372.     [RUN] diskname:program
  373.     QUIT
  374. ENDIF
  375. IF "<switch>" EQ "off"
  376.     IF EXISTS WB:fonts
  377.         ASSIGN fonts: WB:fonts
  378.     ELSE
  379.         ASSIGN fonts:
  380.     ENDIF
  381.     DELETE ram:filename
  382.     QUIT    /* this QUIT is here so that the usage statement won't be
  383. printed if the user typed in the parameter "off" correctly. ENDIF and LAB won't
  384. prevent the normal top->bottom flow, so without the QUIT, execution would
  385. continue past both of those commands and into the usage statement, causing
  386. confusion to the user and prompting him/her to make probably unfounded remarks
  387. about your dubious parentage. In case the user typed in the wrong thing, the
  388. last error we need to consider, control will bypass this IF and print out the
  389. usage statement */
  390. ENDIF
  391. LAB usage
  392.     ECHO "Either use 'on' or 'off' as a parameter"
  393.     /* remember you can't use " inside of the ECHO string, or it
  394.        will think it's found the end */
  395.  
  396.  
  397.     OK, so it's not beautiful, but it would work. With the "IF EXISTS"
  398. for the fonts directory, this file could be stored on the disk with the
  399. program and it would check to see if you have a fonts directory on your
  400. WB.
  401.  
  402.  
  403. ________________________________________________________________________________
  404.  
  405.    Need more help?   
  406.  
  407.     There are several pages in the AmigaDOS manual that cover EXECUTE
  408. and more on the other commands that have been mentioned. You'd be well
  409. advised to direct your attention to those pages for further study, I've
  410. only scratched the surface.
  411.  
  412.  
  413. ________________________________________________________________________________
  414.  
  415.     Now you seen how some of these commands are used, let's build something
  416. that might be considered useful.
  417.  
  418.     Remember way back when, I said I didn't like the shotgun approach to
  419. putting stuff in ram:c? Now you're going to write a batchfile that will put a
  420. few of the most common commands there instead of copying the whole df0:c (dir).
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.     Oh! you'd like a little help? Alright.
  450.  
  451.  
  452.  
  453.     First, we'll need to get ED going, but we'll need to have a name for our
  454. file, I tend to like to give batchfiles a name that both captures the essence of
  455. what it's supposed to do AND is easy to type. "C" might do it, but it could be a
  456. little too succinct. For the sake of the argument, let's use ram_c. Of course
  457. you can use anything you want, but you'll have to do the substitutions:
  458.  
  459. >> ED s:ram_c
  460.  
  461. /* The editor starts. Type the following lines in WITHOUT the /* */ comments!!
  462. EXECUTE doesn't recognize that pattern as a comment and you'll be opening
  463. yourself up to a world of hurt! */
  464.  
  465.  
  466.     in the ED window     
  467.  
  468. makedir ram:c        /* sets up the destination */
  469. copy c:Copy ram:c
  470. assign c: ram:c        /* this will speed up the process of the repeated use
  471.                of the COPY command */
  472. copy df0:c/Assign c:    /* same source and destination, but different names */
  473. copy df0:c/CD c:
  474. copy df0:c/Dir c:
  475. copy df0:c/Delete c:
  476. copy df0:c/Execute c:
  477. copy df0:c/Path c:
  478. copy df0:c/Run c:
  479.  
  480. ; copy df0:c/ c:
  481. ;copy df0:c/ c:        /* the ";" IS the way to do comments in
  482.                a batchfile!! Anything that follows, is ignored.
  483.                Spaces between lines are OK. They make the files
  484.                easier to read.
  485.                  If you leave a line or two like this
  486.                around, should you want to add more, it's a quick
  487.                job of editing. THEY AREN'T REQUIRED!!! I did it
  488.                as an example */
  489. path add c: df0:c    /* PATH looks in current directory and c: right now.
  490.                Since we haven't copied ALL our commands to ram:c,
  491.                we can get it to find the rest this way. So why add
  492.                c: when it's already there? c: is the LAST place that
  493.                gets searched and since all the commands are in df0:c
  494.                too, that's where they'd be found. Like this, they'll
  495.                be found in ram:c first.The other way to go about
  496.                this would be to reASSIGN C: to df0:c and add ram:c
  497.                to the path..like this... */
  498. /* ASSIGN c: df0:c
  499.    PATH ADD ram:c */
  500. ;End of File
  501.  
  502. <ESC>
  503. * x
  504.  
  505.     So it's saved to the disk, now what?
  506.  
  507.     This file can be EXECUTEd right now, except that ram:c already exists
  508. and that situation will cause MAKEDIR to fail and the file's execution to end.
  509.  
  510.     Here's what we'll do..
  511.  
  512. >> INFO
  513. /* take note of how big ram: is, we'll use this for a comparison */
  514. >> ASSIGN c: df0:c
  515. >> DELETE ram:c all
  516. >> EXECUTE ram_c    /* EXECUTE doesn't NEED to be told it's IN s:, only if
  517.                it's NOT. Remember, it looks there by default. */
  518. >> INFO
  519. /* the size of the ram: disk should be considerably smaller. BTW (by the way)
  520. don't be confused by the fact that you're told there are STILL 0 bytes free in
  521. ram:, no matter how much you have, it always says that. */
  522.  
  523.  
  524.     This is all well and good, but now the REAL test of our mettle!
  525. Putting it in the (drum-roll) startup-sequence (a hushed, but lengthy aaaaahhhh)
  526.  
  527.     We'll be smart, though...lest we make a mistake:
  528.  
  529. >> COPY s:startup-sequence s:old_startup
  530. /* this gives us a backup in case we mess something up and don't notice! */
  531.  
  532. Here we go...
  533. >> ED s:startup-sequence
  534. /* here's what you'll find: */
  535.  
  536. winsize 0 0 600 199
  537. echo "Putting C: in RAM:*nPlease be patient a few minutes..."
  538. makedir ram:C
  539. copy c: ram:c quiet
  540. assign C: ram:C
  541. cls
  542. echo "
  543. [7m THIS WINDOW
  544. [0m will be used by READER to read the instruction text"
  545. echo "and
  546. [7m THE OTHER WINDOW
  547. [0m will be used by you to type COMMANDS into"
  548. echo "to get the feel of the whole thing"
  549. wait 10
  550. newcli "con:0/201/640/199/ Your commands go in this window " s:pmt
  551. cls
  552. echo "
  553. [7m IMPORTANT STUFF....please read!!!
  554. [0m"
  555. echo "*n*n
  556. [3mCLICK in the UPPER window
  557. [0m*n"
  558. echo "At the prompt in the UPPER window,*ntype in this line....*n"
  559. echo "
  560. [33mReader CLI_tutorial.intro
  561. [0m*nThen..."
  562. echo "Use the gadgets at the bottom of the READER to control your position"
  563. echo "within the text. You can change the colors and quit from the READER menu"
  564.  
  565.  
  566.     There are already several fatal mistakes in the sequence caused by
  567. merely loading it into ED. Can you find them?
  568.  
  569.     Look at the ECHO line 7th from the top. There's only: 
  570. ECHO "
  571.  
  572. on it. And the two lines below it are junk! So what happened?
  573.     When I wrote the file, I didn't use ED, I used the MicroEMACS editor
  574. from the EXTRAS disk. EMACS has a way to imbed <ESC> keystrokes in the text,
  575. this allows you to alter the output. Ergo, the text/colors are different in this
  576. case. We'll get into that in the next section, but for now, you'll need to
  577. reconstruct that line.
  578.     ED does allow you to simulate an <ESC> with "*e".
  579.     What you need to do is put an "*e" /* or "*E", it doesn't matter */
  580. IN FRONT of the "[" on all the lines below an ECHO line AND then retype the
  581. ECHO line so that they look like this example:
  582.  
  583. ECHO "*e[33mReader CLI_tutorial.intro*e[0m*nThen..."
  584.  
  585. and delete the two lines that start with "[".
  586.  
  587. Your end result at this point should look like this:
  588.  
  589. winsize 0 0 640 199
  590. echo "Putting C: in RAM:*nPlease be patient a few minutes..."
  591. makedir ram:C
  592. copy c: ram:c quiet
  593. assign C: ram:C
  594. cls
  595. echo "*e[7m THIS WINDOW *e[0m will be used by READER to read the instruction
  596.      text" /* this HAS to be part of the above line!! */
  597. echo "and *e[7m THE OTHER WINDOW *e[0m will be used by you to type COMMANDS
  598.      into" /* this HAS to be part of the above line!! */
  599. echo "to get the feel of the whole thing"
  600. wait 10
  601. newcli "con:0/201/640/199/ Your commands go in this window " s:pmt
  602. cls
  603. echo "*e[7m IMPORTANT STUFF....please read!!!*e[0m"
  604. echo "*n*n*e[3mCLICK in the UPPER window*e[0m*n"
  605. echo "At the prompt in the UPPER window,*ntype in this line....*n"
  606. echo "*e[33mReader CLI_tutorial.intro*e[0m*nThen..."
  607. echo "Use the gadgets at the bottom of the READER to control your position"
  608. echo "within the text. You can change the colors and quit from the READER menu" 
  609.  
  610.     Great! We're past the hard part. Let's get finished.
  611.  
  612.     To install our modification, we need to delete the three lines that
  613. begin with "MAKEDIR", "COPY c:", and "ASSIGN", these are the third, fourth, and
  614. fifth lines in the file. The quick way to do this is:
  615.  
  616. Put the cursor on the line that begins with "MAKEDIR"
  617. Press <CTRL>B and the line will disappear.
  618. Press <CTRL>B twice more.
  619. Move the cursor to the beginning (the left) of the 2d line and press <RETURN>
  620. Move the cursor back up to the empty line we've just created and type:
  621.  
  622. execute ram_c
  623.  
  624.     That should do it! Your final file should look like this, with the
  625. exception of the two lines I had to split to fit on the screen here:
  626.  
  627. winsize 0 0 640 199
  628. echo "Putting C: in RAM:*nPlease be patient a few minutes..."
  629. execute ram_c
  630. cls
  631. echo "*e[7m THIS WINDOW *e[0m will be used by READER to read the instruction
  632.          text" /* this HAS to be part of the above line!! */
  633. echo "and *e[7m THE OTHER WINDOW *e[0m will be used by you to type COMMANDS
  634.          into" /* this HAS to be part of the above line!! */?
  635. echo "to get the feel of the whole thing"
  636. wait 10
  637. newcli "con:0/201/640/199/ Your commands go in this window " s:pmt
  638. cls
  639. echo "*e[7m IMPORTANT STUFF....please read!!!*e[0m"
  640. echo "*n*n*e[3mCLICK in the UPPER window*e[0m*n"
  641. echo "At the prompt in the UPPER window,*ntype in this line....*n"
  642. echo "*e[33mReader CLI_tutorial.intro*e[0m*nThen..."
  643. echo "Use the gadgets at the bottom of the READER to control your position"
  644. echo "within the text. You can change the colors and quit from the READER menu" 
  645.  
  646.     Now:
  647. <ESC>
  648. * x
  649.  
  650.  
  651.     Our changes have now been rendered as a series of magnetic hocus-pocus
  652. to the disk. In order to view you handiwork, you'll have to reboot. Don't panic
  653. if it doesn't work, it's probably a simple mistake you can correct by taking
  654. another look at this file. If something does go wrong, make a mental note of
  655. what failed..you'll get a message and that should help you track it down.
  656.  
  657.     If you need to do more work all you'll need to do is:
  658. >> ED s:startup-sequence
  659. and make whatever changes might be necessary.
  660.  
  661.  
  662.     But, since it's going to work, we'll move on to CLI_tutorial.6
  663.  
  664.  
  665.